home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 1.iso / dist / fw_exmh.idb / usr / freeware / lib / exmh-2.5 / html_content.tcl.z / html_content.tcl
Text File  |  2002-07-08  |  2KB  |  60 lines

  1. # content.tcl
  2. #    Handlers for different content types called by UrlDisplay.
  3.  
  4. # These procedures need to return 1 or 0.
  5. # A 1 indicates they displayed something in the current page.
  6. # If they can't do anything with the content, they should raise an error
  7. # and UrlDisplay will call the next content type handler.
  8.  
  9. proc Content_text/html {win url} {
  10.     upvar #0 HM$win var
  11.     upvar #0 $url data
  12.     regsub {\?.*} $url {} var(S_url)
  13.     Url_DisplayHtml $win $var(S_url) $data(html)
  14.     return 1
  15. }
  16. proc Content_text/plain {win url} {
  17.     upvar #0 HM$win var
  18.     upvar #0 $url data
  19.     set var(S_url) $url
  20.     HMreset_win $win
  21.     wm title [winfo toplevel $win] [file tail $url]
  22.     wm iconname  [winfo toplevel $win] [file tail $url]
  23.     $win insert 1.0 $data(html)
  24.     return 1
  25. }
  26. proc Content_image {win url} {
  27.     upvar #0 $url data
  28.     Status $win "starting xv to view image"
  29.     exec xv $data(file) &
  30.     return 0
  31. }
  32. proc Content_default {win url} {
  33.     upvar #0 HM$win var
  34.     upvar #0 $url data
  35.     if [info exists data(message)] {
  36.     regsub {\?.*} $url {} var(S_url)
  37.     Url_DisplayHtml $win $var(S_url) $data(message)
  38.     return 1
  39.     } else {
  40.     if {[info exists data(file)] && [file exists $data(file)]} {
  41.         set localname \
  42.         [FSBox "Location for downloaded file"]
  43.         while {$localname != {}} {
  44.         if [catch {
  45.             exec cp $data(file) $localname
  46.         } err] {
  47.             Status $win $err
  48.         } else {
  49.             Status $win "Saved to $localname"
  50.             break
  51.         }
  52.         set localname \
  53.             [fileselect "Location for downloaded file"]
  54.         }
  55.         catch {rm -f $data(file)}
  56.     }
  57.     return 0
  58.     }
  59. }
  60.